import 'dart:developer' as developer;
abstract class Base {
  void log() => print('Base');
}

mixin A on Base {
  @override
  void log() {
    super.log();
    print('A');
  }
}

mixin B on Base {
  @override
  void log() {
    super.log();
    print('B');
  }
}
// 1.依次调用base,a,b中的log
class MyLogger extends Base with A, B{
  @override
  void log() {
    // 这里的 super 指向 B（因为 with A, B 中，B 是最后一个 mixin，它在继承链上离 MyLogger 最近）。
    super.log(); // 调用 B.log -> B 会调用 A.log -> A 会调用 Base.log
    print('MyLogger');
  }
}

void main() {
  MyLogger().log();
  const a = 12;
  developer.inspect(a);
}